`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2020/11/11 10:36:46
// Design Name: 
// Module Name: hexseg8
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module hexseg8(
///////// UNIVERSAL RESOURCES /////////
    input clk_i,  // 100MHz clock
///////// TIMER RESOURCES /////////
    input timer_rst_i,  // highpos reset
///////// READER RESOURCES /////////
    input [7:0] d_i,
///////// OUTPUTS /////////
    output [7:0] bus_num1_o,  // FORMAT: bus_num = {a, b, c, d, e, f, g, dot}
    output [7:0] bus_num0_o,
    output [7:0] digit_en_o
    );
    
    wire [3:0] digits [7:0];
    
    timer TIMER(clk_i, timer_rst_i, digits[7], digits[6]);
	reader READER(d_i, digits[5], digits[4]);
	assign digits[3] = 4'b0000;
	assign digits[2] = 4'b0111;
	assign digits[1] = 4'b0001;
	assign digits[0] = 4'b1100;
	
	display_driver DISPLAY_DRV_HIGH(
		clk_i,
		digits[7], digits[6], digits[5], digits[4],
		4'b0000,
		bus_num1_o,
		digit_en_o[7:4]
	);
	display_driver DISPLAY_DRV_LOW(
		clk_i,
		digits[3], digits[2], digits[1], digits[0],
		4'b0101,
		bus_num0_o,
		digit_en_o[3:0]
	);
    
endmodule
